home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 2 / The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO / prog / mulat387.zip / 387GERM.DOC < prev    next >
Text File  |  1990-04-29  |  22KB  |  438 lines

  1.                   ╔════════════════════════════════╗
  2.                   ║                                ║
  3.                   ║            FRANKE.387          ║
  4.                   ║                                ║
  5.                   ║    Koprozessor-Emulation für   ║
  6.                   ║         387DX und 387SX        ║
  7.                   ║                                ║
  8.                   ║           Version 2.4          ║
  9.                   ║                                ║
  10.                   ║  (c) Copyright 1989, 1990 by   ║
  11.                   ║      Ingenieurbüro FRANKE,     ║
  12.                   ║      All rights reserved.      ║
  13.                   ║                                ║
  14.                   ╚════════════════════════════════╝
  15.  
  16. Überblick
  17. ═════════
  18.  
  19. FRANKE.387 ist eine Software-Emulation der mathematischen Koprozessoren
  20. 387DX und 387SX von Intel. FRANKE.387 wurde für ATs mit 386DX oder 386SX
  21. Prozessor entwickelt. Als Betriebssystem wird MS-DOS, oder ein dazu
  22. kompatibles, vorausgesetzt.
  23.  
  24. Durch FRANKE.387 wird der gesamte Befehlsumfang der 387-Koprozessoren
  25. abgedeckt. Neben sämtlichen Befehlen stehen auch sämtliche 16 und 32
  26. Bit Adressierungs-Modi zur Verfügung. Dadurch besteht für Anwendungs-
  27. Programme kein Unterschied zum echten Koprozessor.
  28.  
  29. Natürlich kann FRANKE.387 nicht die physikalische Rechenleistung erhöhen.
  30. FRANKE.387 arbeitet zwar langsamer als ein Koprozessor, macht aber davon
  31. unabhängig. Viele Standard-Programme, die einen Koprozessor automatisch
  32. erkennen, arbeiten mit FRANKE.387 bis Faktor 2,25 schneller.
  33.  
  34.  
  35. Shareware
  36. ═════════
  37.  
  38. Mit der Version 2.4 wurde FRANKE.387 auch als Shareware-Version in Umlauf
  39. gebracht. Auf einige Leistungs-Merkmale wurde bei dieser Shareware-Version
  40. verzichtet.
  41.  
  42. Die nicht registrierte Shareware-Version darf beliebig kopiert und unent-
  43. geltlich weitergegeben werden. Jeder hat das Recht, diese nicht registrierte
  44. Version bis zu 30 Tage kostenlos zu testen.
  45.  
  46. Alle weiteren Rechte, wie z.B. Verkauf, Änderung, Weitergabe einer
  47. registrierten Version oder auch Nutzung der nicht registrierten Version
  48. länger als 30 Tage, sind ausdrücklich untersagt. Ausnahmen hiervon
  49. bedürfen einer vorherigen, schriftlichen Genehmigung durch das Ingenieur-
  50. büro Franke.
  51.  
  52.  
  53. Registrieren
  54. ════════════
  55.  
  56. FRANKE.387 darf nur von registrierten Anwendern länger als 30 Tage
  57. genutzt werden. Die registrierten Versionen benötigen keinen Benutzer-
  58. Eingriff beim Boot-Vorgang.
  59.  
  60.    ┌───────────────────────────────────────────────────────┬──────────────┐
  61.    │ Version                                               │ Preis zzgl.  │
  62.    │                                                       │ Kosten       │
  63.    ├───────────────────────────────────────────────────────┼──────────────┤
  64.    │ Shareware-Version, nur eine Genauigkeits-Stufe        │ DM  60,00    │
  65.    │                                                       │              │
  66.    │ Komplett-Version, 3 Genauigkeits-Stufen, High Level   │              │
  67.    │ Language Interface, 387 Instruction Trace Modus       │ DM  95,00    │
  68.    │                                                       │              │
  69.    │ Upgrade von Shareware-Version auf Komplett-Version    │ DM  40,00    │
  70.    └───────────────────────────────────────────────────────┴──────────────┘
  71.  
  72. Zum Registrieren werden folgende Angaben benötigt:
  73.  
  74.         1. Name
  75.         2. genaue Anschrift
  76.         3. gewünschte Version (Shareware/Komplett/Upgrade)
  77.  
  78. diese Angaben senden Sie an:
  79.  
  80.       ┌─────────────────────────────────────────────────────────────┐
  81.       │   Brief/Fax:                      Überweisung:              │
  82.       │                                                             │
  83.       │   Ingenieurbüro FRANKE            Ingenieurbüro FRANKE      │
  84.       │   Rennweg 61                      Konto 10039999            │
  85.       │   D-8500 Nürnberg 20              Schmidt Bank, Nürnberg    │
  86.       │   Fax: 49 911 535421              BLZ 760 300 70            │
  87.       └─────────────────────────────────────────────────────────────┘
  88.  
  89. Die Lieferung erfolgt gegen Nachnahme zzgl. Kosten, bzw. ohne zusätzliche
  90. Kosten bei Überweisung.
  91.  
  92.  
  93. Installation
  94. ════════════
  95.  
  96. Die Installation ist sehr einfach:
  97.  
  98. 1. Die Dateien FRANKE.387 und 387.EXE auf die Festplatte bzw. Boot-Diskette
  99.    kopieren.
  100.  
  101. 2. Die Datei CONFIG.SYS erstellen, falls noch nicht geschehen.
  102.  
  103. 3. Folgende Zeile in CONFIG.SYS eintragen:
  104.  
  105.         DEVICE = FRANKE.387
  106.  
  107.    Ggf. kann dem Namen FRANKE.387 eine Pfad-Angabe vorangestellt werden,
  108.    also z.B. DEVICE = c:\tools\FRANKE.387
  109.  
  110.    Hinter dem Namen FRANKE.387 kann der Schalter ON oder OFF stehen.
  111.    Also z.B. DEVICE = FRANKE.387 ON. Dieser Schalter gibt an, ob FRANKE.387
  112.    anfangs ein- oder ausgeschaltet sein soll. Fehlt dieser Schaltet, so
  113.    wird FRANKE.387 automatisch eingeschaltet, wenn kein Koprozessor gefunden
  114.    wurde, und automatisch ausgeschaltet, wenn bereits ein Koprozessor
  115.    installiert ist.
  116.  
  117. 4. Rechner neu booten.
  118.  
  119.    Durch den Eintrag in CONFIG.SYS wird FRANKE.387 bei jedem Boot-Vorgang
  120.    geladen. FRANKE.387 meldet sich mit einer Copyright-Meldung und teilt
  121.    seinen aktuellen Zustand mit.
  122.  
  123.    ┌────────────────────────────────────────────────────────────────────┐
  124.    │ Die nicht registrierte Shareware-Version enthält eine erweiterte   │
  125.    │ Copyright-Meldung, außerdem ertönt ein akustisches Signal. Der     │
  126.    │ Boot-Vorgang wird dann solange unterbrochen, bis Sie die richtige  │
  127.    │ Taste gedrückt haben. Diese Taste erscheint in der letzten Zeile   │
  128.    │ der Meldung. - Es müssen Großbuchstaben eingegeben werden!         │
  129.    └────────────────────────────────────────────────────────────────────┘
  130.  
  131.  
  132.  
  133. Bedienen von FRANKE.387
  134. ═══════════════════════
  135.  
  136. FRANKE.387 benötigt normalerweise keinerlei Bedienung durch den Anwender.
  137. Sämtliche Aktionen werden durch die Anwendungs-Programme eingeleitet, wenn
  138. sie den Koprozessor ansprechen. FRANKE.387 arbeitet also vollautomatisch.
  139. Für die Anwendungs-Programme besteht kein Unterschied zum echten Koprozessor.
  140.  
  141. Natürtlich arbeitet FRANKE.387 nur im eingeschalteten Zustand. Wie bei der
  142. Installation erklärt, kann dieser Zustand durch die Schalter ON bzw. OFF
  143. fest eingestellt werden. Normalerweise ist FRANKE.387 immer dann einge-
  144. schaltet, wenn kein Koprozessor vorhanden ist.
  145.  
  146. Zum nachträglichen Ein- bzw. Ausschalten von FRANKE.387 wird das Programm
  147. 387.EXE mitgeliefert. Dieses Programm kann in irgendein Verzeichnis der
  148. Festplatte oder auch auf eine Diskette kopiert und von dort aus gestartet
  149. werden.
  150.  
  151. Folgende Aufruf-Arten von 387.EXE sind möglich. Einige dieser Funktionen
  152. werden nur durch die Komplett-Version unterstützt.
  153.  
  154. ┌─────────────────┬───────────────────────────────────────────────────────┐
  155. │ Aufruf          │ Funktion                                              │
  156. ├─────────────────┼───────────────────────────────────────────────────────┤
  157. │ 387             │ FRANKE.387 wird in den Standard-Zustand gesetzt.      │
  158. │                 │ D.h. FRANKE.387 wird eingeschaltet, wenn kein         │
  159. │                 │ Koprozessor installiert ist, bzw. ausgeschaltet,      │
  160. │                 │ wenn ein Koprozessor gefunden wurde.                  │
  161. ├─────────────────┼───────────────────────────────────────────────────────┤
  162. │ 387 ON          │ FRANKE.387 wird mit voller Genauigkeit eingeschaltet. │
  163. ├─────────────────┼───────────────────────────────────────────────────────┤
  164. │ 387 OFF         │ FRANKE.387 wird ausgeschaltet. Das kann z.B. notwendig│
  165. │                 │ werden, wenn bei eingeschaltetem FRANKE.387 kein      │
  166. │                 │ Warm-Start (Strg+Alt+Entf) möglich ist. Der Tastatur- │
  167. │                 │ Treiber KEYBOARD.386 erledigt das selbständig.        │
  168. ╞═════════════════╧═══════════════════════════════════════════════════════╡
  169. │ Die Folgenden Funktionen werden nur in der Komplett-Version unterstützt.│
  170. ╞═════════════════╤═══════════════════════════════════════════════════════╡
  171. │ 387 53          │ FRANKE.387 wird mit maximal 53 Bit Genauigkeit        │
  172. │                 │ eingeschaltet. Das entspricht den Daten-Typen double, │
  173. │                 │ long real oder doppelter Genauigkeit. Das ist für fast│
  174. │                 │ alle Anwendungen die höchste unterstützte Genauigkeit │
  175. │                 │ und in diesen Fällen ausreichend. FRANKE.387 arbeitet │
  176. │                 │ dadurch deutlich schneller.                           │
  177. ├─────────────────┼───────────────────────────────────────────────────────┤
  178. │ 387 24          │ FRANKE.387 wird mit maximal 24 Bit Genauigkeit        │
  179. │                 │ eingeschaltet. Das entspricht den Daten-Typen float,  │
  180. │                 │ real oder einfacher Genauigkeit. Das ist in vielen    │
  181. │                 │ Fällen die tatsächlich benötigte Genauigkeit.         │
  182. │                 │ FRANKE.387 arbeitet dadurch deutlich schneller.       │
  183. ├─────────────────┼───────────────────────────────────────────────────────┤
  184. │ 387 ON I        │ Wie 387 ON, zusätzlich wird das High Level Language   │
  185. │                 │ Interface aktiviert. (Siehe High Level Language       │
  186. │                 │ Interface.)                                           │
  187. ├─────────────────┼───────────────────────────────────────────────────────┤
  188. │ 387 53 I        │ Wie 387 53, zusätzlich wird das High Level Language   │
  189. │                 │ Interface aktiviert. Das ist die empfohlene Standard- │
  190. │                 │ Einstellung für die Komplett-Version. (Siehe High     │
  191. │                 │ Level Language Interface.)                            │
  192. ├─────────────────┼───────────────────────────────────────────────────────┤
  193. │ 387 24 I        │ Wie 387 24, zusätzlich wird das High Level Language   │
  194. │                 │ Interface aktiviert. In dieser Einstellung erreicht   │
  195. │                 │ FRANKE.387 die höchste Rechenleistung. (Siehe High    │
  196. │                 │ Level Language Interface.)                            │
  197. └─────────────────┴───────────────────────────────────────────────────────┘
  198.  
  199.  
  200.  
  201. Rechengeschwindigkeit
  202. ═════════════════════
  203.  
  204. Wie jeder 387-Koprozessor kann auch FRANKE.387 in den drei Genauigkeits-
  205. stufen mit 64, 53 bzw. 24 Bit rechnen. In der Komplett-Version kann der
  206. Anwender die maximale Genauigkeit festlegen, um höhere Rechenleistung zu
  207. erzielen.
  208.  
  209. Die folgende Tabelle gibt für einige Befehle die ungefähren Taktzyklen an.
  210. Die Angaben gelten für 386DX-Prozessoren ohne Wait States, bei 386SX oder
  211. Wait States sind alle Werte geringfügig höher anzusetzen.
  212.  
  213. Unter EMUL87 sind die Zeiten für den Public Domain 80287-Emulator angegeben.
  214.  
  215. ┌──────────╥──────────────────╥───────╥──────────────────────────╥────────┐
  216. │          ║                  ║       ║        FRANKE.387        ║        │
  217. │ Funktion ║ Beschreibung     ║ 387DX ║ 64 Bit │ 53 Bit │ 24 Bit ║ EMUL87 │
  218. ╞══════════╬══════════════════╬═══════╬════════╪════════╪════════╬════════╡
  219. │ FNOP     ║ keine Operation  ║    25 ║    410 │    410 │    410 ║  1.075 │
  220. │ FLD      ║ TByte-Zahl laden ║    38 ║    650 │    650 │    650 ║  1.470 │
  221. │ FSTP     ║ TByte speichern  ║    55 ║    745 │    745 │    745 ║  1.495 │
  222. ├──────────╫──────────────────╫───────╫────────┼────────┼────────╫────────┤
  223. │ FADD     ║ Addition         ║    34 ║    700 │    700 │    680 ║  1.460 │
  224. │ FSUB     ║ Subtraktion      ║    34 ║    770 │    770 │    750 ║  1.565 │
  225. │ FMUL     ║ Multiplikation   ║    52 ║    830 │    800 │    700 ║  1.985 │
  226. │ FDIV     ║ Division         ║    96 ║    840 │    840 │    710 ║  2.340 │
  227. ├──────────╫──────────────────╫───────╫────────┼────────┼────────╫────────┤
  228. │ FSQRT    ║ Quadratwurzel    ║   126 ║  1.295 │  1.060 │    805 ║  3.135 │
  229. │ FSIN     ║ Sinus            ║   490 ║  3.960 │  3.770 │  1.960 ║   ---  │
  230. │ FCOS     ║ Cosinus          ║   547 ║  4.100 │  3.910 │  2.070 ║   ---  │
  231. │ FPTAN    ║ Tangens          ║   342 ║  5.845 │  5.400 │  2.995 ║ 13.530 │
  232. │ FPATAN   ║ Arcustangens     ║   448 ║  8.895 │  7.965 │  3.750 ║ 13.875 │
  233. │ FYL2X    ║ Logarithmus      ║   492 ║  8.690 │  7.610 │  3.410 ║ 12.885 │
  234. │ F2XM1    ║ Potenzfunktion   ║   317 ║  4.385 │  3.975 │  2.140 ║ 11.640 │
  235. └──────────╨──────────────────╨───────╨────────┴────────┴────────╨────────┘
  236.  
  237.  
  238.  
  239. High Level Language Interface
  240. ═════════════════════════════
  241.  
  242. Das High Level Language Interface (HLLI) steht nur in der Komplett-Version
  243. zur Verfügung. Das HLLI nutzt die spezielle Kodierung der Koprozessor-
  244. Befehle, wie sie durch etliche Hochsprachen-Compiler z.B. von Microsoft
  245. oder Borland erzeugt werden.
  246.  
  247. Durch das HLLI kann FRANKE.387 alle Anweisungen deutlich schneller aus-
  248. führen als ohne HLLI. In der Regel stört das HLLI keine Anwendungen. Bei
  249. Problemen sollte es abgeschaltet werden. Es wird empfohlen, FRANKE.387 auf
  250. maximal 53 Bit Genauigkeit mit High Level Language Interface einzustellen.
  251. Durch diese Einstellung entstehen gewöhnlich keine Nachteile bei sehr
  252. hoher Rechenleistung.
  253.  
  254. Die folgende Tabelle zeigt den Nutzen des HLLI anhand eines Testprogramms.
  255. Das Testprogramm führt jede Anweisung 100.000 mal mit gleichmäßig verteilten
  256. Zufallszahlen aus. Es wurde in C geschrieben, und mit Microsoft C
  257. (Firma Microsoft) bzw. Turbo C (Firma Borland) übersetzt.
  258. Als Testrechner diente ein 386DX, 25MHz. Alle Zeitangabe sind in Sekunden.
  259.  
  260. ╔══════════════════════════════════════════════════════════════════╗
  261. ║ Testprogramm mit Microsoft C übersetzt:                          ║
  262. ╟──────────╥───────╥───────────╥─────────────────╥─────────────────╢
  263. ║    C-    ║       ║ Microsoft ║   FRANKE.387    ║ FRANKE.387+HLLI ║
  264. ║ Funktion ║ 387DX ║ Emulation ║ 64 Bit │ 53 Bit ║ 64 Bit │ 53 Bit ║
  265. ╠══════════╬═══════╬═══════════╬════════╪════════╬════════╪════════╣
  266. ║ x := y   ║  0,27 ║      0,27 ║   0,27 │   0,27 ║   0,27 │   0,27 ║
  267. ║ x < y    ║  0,71 ║      8,63 ║   9,56 │   9,51 ║   8,35 │   8,35 ║
  268. ╟──────────╫───────╫───────────╫────────┼────────╫────────┼────────╢
  269. ║ x + y    ║  0,66 ║      8,63 ║   9,07 │   9,07 ║   8,30 │   8,24 ║
  270. ║ x * y    ║  0,71 ║     10,49 ║   9,67 │   9,62 ║   8,85 │   8,79 ║
  271. ║ x / y    ║  0,93 ║     12,47 ║   9,73 │   9,73 ║   8,90 │   8,90 ║
  272. ╟──────────╫───────╫───────────╫────────┼────────╫────────┼────────╢
  273. ║ sqrt(x)  ║  2,75 ║     27,58 ║  29,56 │  28,74 ║  26,32 │  25,44 ║
  274. ║ sin(x)   ║  7,14 ║    129,67 ║  92,86 │  90,11 ║  84,62 │  82,42 ║
  275. ║ cos(x)   ║  7,14 ║    131,32 ║  94,51 │  91,21 ║  86,26 │  82,97 ║
  276. ║ tan(x)   ║  6,04 ║    103,30 ║  76,92 │  75,82 ║  70,88 │  69,23 ║
  277. ║ atan(x)  ║  4,95 ║    107,69 ║  52,20 │  52,20 ║  47,25 │  46,70 ║
  278. ║ exp(x)   ║  7,14 ║    130,77 ║  94,00 │  92,31 ║  83,52 │  81,87 ║
  279. ║ log(x)   ║  4,95 ║    103,30 ║  70,33 │  65,38 ║  65,38 │  60,99 ║
  280. ║ pow(x,y) ║  9,89 ║    217,58 ║ 143,41 │ 137,36 ║ 131,32 │ 125,27 ║
  281. ╚══════════╩═══════╩═══════════╩════════╧════════╩════════╧════════╝
  282.  
  283. ╔══════════════════════════════════════════════════════════════════╗
  284. ║ Testprogramm mit Borland Turbo C übersetzt:                      ║
  285. ╟──────────╥───────╥───────────╥─────────────────╥─────────────────╢
  286. ║    C-    ║       ║ Borland   ║   FRANKE.387    ║ FRANKE.387+HLLI ║
  287. ║ Funktion ║ 387DX ║ Emulation ║ 64 Bit │ 53 Bit ║ 64 Bit │ 53 Bit ║
  288. ╠══════════╬═══════╬═══════════╬════════╪════════╬════════╪════════╣
  289. ║ x := y   ║  0,57 ║      4,47 ║   5,74 │   5,74 ║   5,13 │   5,13 ║
  290. ║ x < y    ║  0,68 ║      6,89 ║   8,21 │   8,21 ║   7,32 │   7,32 ║
  291. ╟──────────╫───────╫───────────╫────────┼────────╫────────┼────────╢
  292. ║ x + y    ║  0,79 ║      8,59 ║   9,31 │   9,31 ║   8,48 │   8,48 ║
  293. ║ x * y    ║  0,90 ║     10,74 ║   9,91 │   9,80 ║   9,08 │   8,98 ║
  294. ║ x / y    ║  1,01 ║     11,95 ║   9,91 │   9,91 ║   9,14 │   9,09 ║
  295. ╟──────────╫───────╫───────────╫────────┼────────╫────────┼────────╢
  296. ║ sqrt(x)  ║  1,67 ║     19,25 ║  17,05 │  16,18 ║  15,62 │  14,69 ║
  297. ║ sin(x)   ║  3,21 ║     38,92 ║  29,58 │  28,48 ║  28,48 │  27,93 ║
  298. ║ cos(x)   ║  3,76 ║     38,92 ║  30,64 │  29,03 ║  29,03 │  28,48 ║
  299. ║ tan(x)   ║  3,76 ║     68,04 ║  39,47 │  37,82 ║  37,82 │  35,63 ║
  300. ║ atan(x)  ║  4,86 ║     44,97 ║  47,16 │  46,62 ║  26,83 │  26,29 ║
  301. ║ exp(x)   ║  8,70 ║     68,64 ║ 102,66 │ 101,56 ║  36,17 │  34,53 ║
  302. ║ log(x)   ║  4,86 ║     60,90 ║  61,45 │  57,05 ║  51,01 │  46,62 ║
  303. ║ pow(x,y) ║ 15,05 ║    149,67 ║ 190,88 │ 184,84 ║ 107,31 │ 101,32 ║
  304. ╚══════════╩═══════╩═══════════╩════════╧════════╩════════╧════════╝
  305.  
  306.  
  307.  
  308. Benchmark-Tests
  309. ═══════════════
  310.  
  311. FRANKE.387 wurde mit ein paar bekannten Benchmark-Programmen getestet.
  312. Die Tabelle enthält die entsprechenden Ergebnisse, die auf einem 386DX
  313. mit 25MHz erziehlt wurden:
  314.  
  315. ┌───────────┬─────╥───────╥──────╥────────────────────╥────────────────────┐
  316. │           │     ║       ║ ohne ║     FRANKE.387     ║  FRANKE.387 + HLLI │
  317. │ Benchmark │ Maß ║ 387DX ║ Kopr.║ 64 B.│ 53 B.│ 24 B.║ 64 B.│ 53 B.│ 24 B.│
  318. ├───────────┼─────╫───────╫──────╫──────┼──────┼──────╫──────┼──────┼──────┤
  319. │ ATPERF    │ MHz ║ 52,5  ║ ---- ║ 6,8  │ 6,8  │ 7,5  ║ 6,8  │ 6,8  │ 7,5  │
  320. │ 87TEST    │ MHz ║ 26,91 ║ ---- ║ 1,881│ 1,937│ 2,8  ║ 1,881│ 1,937│ 2,8  │
  321. │ BENCH 5.0 │  s  ║  0,33 ║ ---- ║ 3,66 │ 3,45 │ 2,94 ║ 2,44 │ 2,30 │ 1,78 │
  322. │ TEST41V   │  s  ║  0,50 ║ 2,06 ║ 1,55 │ 1,50 │ 1,22 ║ 1,44 │ 1,39 │ 1,17 │
  323. └───────────┴─────╨───────╨──────╨──────┴──────┴──────╨──────┴──────┴──────┘
  324.  
  325. Die verwendeten Benchmark-Programme:
  326.  
  327. ATPERF:    ATPERF -- PC Tech Journal AT Hardware Performance Test
  328.            Version 2.00, Copyright (c) 1986, 1987 Ziff Communications Co.
  329.  
  330. 87TEST:    87TEST Version 2.01
  331.            Copyright (C) MicroWay, Inc. 1985-1989
  332.      
  333. BENCH 5.0: PC Magazine Labs Benchmark Series 5.0
  334.  
  335. TEST41V:   SpeedTest Version 4.1, Copyright 1990 by Duane A. Allred
  336.  
  337.  
  338.  
  339. 387 Instruction Trace Modus
  340. ═══════════════════════════
  341.  
  342. Der 387 Instruction Trace Modus ist nur mit der Komplett-Version verfüg-
  343. bar. Er eröffnet völlig neue Methoden zum Debuggen. Durch den 387 Instruction
  344. Trace Modus wird jeder ausgeführte Koprozessor-Befehl in folgendem Format
  345. am Bildschirm angezeigt:
  346.  
  347.   CS:IP   Code Befehl   Operand      Adresse       Inhalt
  348.  
  349. also z.B.:
  350.  
  351. 2AE1:4FD3 D9EC LDLG2
  352. 2AE1:4FD6 DEC9 MULP     ST(1),ST
  353. 2AE1:4FD9 DF5E ISTP     Word         30ED:03C4     = 0000
  354. 2AE1:4FE6 DB6E LD       TByte        30ED:03BA     = 3FFF8000000000000000
  355.  
  356. Die Anzeige am Bildschirm erfolgt - natürlich nur bei eingeschaltetem
  357. 387 Instruction Trace Modus - solange Scroll Lock eingeschaltet ist.
  358. Bei ausgeschaltetem Scroll Lock erfolgt keine Anzeige am Bildschrim,
  359. auch wenn der 387 Instruction Trace Modus eingeschaltet ist.
  360.  
  361. Mithilfe der linken Shift-Taste und der Strg-Taste (bzw. Ctrl-Taste)
  362. können die Koprozessor-Befehle auch im Einzelschritt ausgeführt werden.
  363. Dazu müssen der 387 Instruction Trace Modus und Scroll Lock einge-
  364. schaltet sein. Wenn die linke Shift-Taste gedrückt ist, wartet der
  365. 387 Instruction Trace Modus nach dem Anzeigen eines Koprozessor-Befehls
  366. so lange, bis eine Strg-Taste (Ctrl-Taste) gedrückt wird. Solange also
  367. die linke Shift-Taste gedrückt bleibt, kann mit der Strg-Taste jeder
  368. Koprozessor-Befehl einzeln gesteppt werden.
  369.  
  370. Der 387 Instruction Trace Modus stellt eine nützliche Alternative zu
  371. den herkömmlichen Debuggern dar. Zum einen ist der 387 Instruction Trace
  372. Modus für Anwendungs-Programme völlig transparent, zum anderen werden
  373. ausschließlich Koprozessor-Befehle angezeigt. Dadurch können umfangreiche
  374. mathematische Anwendungen problemlos getestet werden.
  375.  
  376. ┌──────────────────────────────────────────────────────────────────────────┐
  377. │ Für den 387 Instruction Trace Modus wird das Programm 387TRACE.EXE       │
  378. │ benötigt, das der Komplett-Version beiliegt. Dieses Programm installiert │
  379. │ sich beim ersten Aufruf resident und benötigt ca. 2800 Bytes. 387TRACE   │
  380. │ schaltet bei jedem Aufruf zyklisch den 387 Instruction Trace Modus ein   │
  381. │ bzw. aus.                                                                │
  382. └──────────────────────────────────────────────────────────────────────────┘
  383.  
  384.  
  385.  
  386. Kompatibilität
  387. ══════════════
  388.  
  389. FRANKE.387 ist ein hochwertiges Software-Produkt, das mit effizienten
  390. Algorithmen die Möglichkeiten der 32 Bit 386-Prozessoren ausschöpft.
  391.  
  392. Bis auf wenige Ausnahmen verhält sich FRANKE.387 total identisch zum
  393. 387-Koprozessor. In diesem Abschnitt sind diese wenigen Ausnahmen
  394. aufgeführt:
  395.  
  396. 1. Rechengenauigkeit
  397. ────────────────────
  398. Der 387-Koprozessor rechnet intern stets mit 67 Bit Genauigkeit. Nur
  399. beim Runden werden die Zahlen der gewünschten Genauigkeit entsprechend
  400. angepaßt. FRANKE.387 rechnet dagegen intern nur mit 64 Bit. Dadurch
  401. können geringe Rundungsfehler bei 64 Bit Genauigkeit auftreten, die in
  402. der Praxis allerdings keine Bedeutung haben. Die Genauigkeiten
  403. von 24 bzw. 53 Bit werden durch FRANKE.387 stets übertroffen.
  404.  
  405. 2. Runden
  406. ─────────
  407. FRANKE.387 rundet nur durch den Befehl FRNDINT bzw. beim Speichern von
  408. Koprozessor-Registern, während der 387-Koprozessor nach jeder Berechnung
  409. rundet. Dadurch wird die Rechenleistung von FRANKE.387 verbessert.
  410. Nachteile dadurch konnten bis jetzt nicht festgestellt werden.
  411.  
  412. 3. F2XM1, FYL2XP1
  413. ─────────────────
  414. Beim 387-Koprozessor sind lediglich die Befehle F2XM1 und FYL2XP1 im
  415. Argument beschränkt. Diese Beschränkung trifft auf FRANKE.387 nicht zu,
  416. sodaß hier alle Befehle mit allen mathematisch zulässigen Argumenten
  417. möglich sind.
  418.  
  419. 4. F2X
  420. ──────
  421. FRANKE.387 kennt zusätzlich den Befehl F2X (Kodierung D9 EF). Dieser Befehl
  422. entspricht den Befehlen F2XM1, FLD1, FADDP allerdings ohne Verlust an
  423. Genauigkeit.
  424.  
  425. 5. FPTAN
  426. ─────────
  427. Im Gegensatz zum 387-Koprozessor errechnet FRANKE.387 für den Tangens von
  428. π/2 etwas genauer den Wert "unendlich".
  429.  
  430. 6. Exceptions
  431. ─────────────
  432. Da FRANKE.387 eine Software-Emulation ist, wird bei Exceptions kein
  433. Hardware-Interrupt erzeugt. Bei einer Exception erzeugt FRANKE.387 stets
  434. einen INT 2. Dieser Interrupt kann nicht maskiert werden. Das entspricht
  435. auch den Spezifikationen des 387-Koprozessors.
  436.  
  437.  
  438.